package com.th.supcom.pds.medicare.api;

import java.util.List;
import java.util.Map;

import com.th.supcom.pds.domain.pojo.InpPhamApplyDetail;
import com.th.supcom.pds.domain.pojo.InpPhamApplyPatInfo;
import com.th.supcom.pds.domain.vo.InpPhamDispenseDetailVO;
import com.th.supcom.pds.domain.vo.PdsSupplyDetailVO;
import com.th.supcom.pds.domain.vo.PdsSupplyResultSet;
import com.th.supcom.pds.domain.vo.PrescSearchDTOVO;
public interface AdapterBMSChargeService
{
    /**
     * 门诊处方收费接口
     * map 里的元素
     * @param area 院区编码 非空
     * @param operator 操作员号 非空
     * @param patientId 患者ID 非空
     * @param visitId 就诊序号 非空
     * @param List <ChargeItem> prescChargeItems 处方待收费计价项目列表，含煎药费药袋等，非空
     * chargeItem中applyId（申请单号）填写处方号，不能为空
     * chargeItem中externalId（外部业务ID）填写供药明细ID、煎药费ID，料袋ID等，不能为空
     * @return 结算流水号
     * @throws IllegalArgumentException 非法参数异常
     * @throws BusinessException 业务异常
     */
    public String prescriptionCharge (Map <String, Object> params,List <Map <String, Object>> prescChargeItems);

    /**
     * 处方记账
     * 
     * @param prescNoList 处方号列表
     * @return
     */
    public void prescriptionAccount (List <String> prescNoList);

    /**
     * 根据条件查询费用明细相关信息
     */
    public List <InpPhamApplyDetail> findChargeItemByExample (PrescSearchDTOVO prescSearchDTOVO);

    /**
     * 根据 条件查询门诊可退费的药品
     * 
     * @param map
     * @return
     */
    public List <PdsSupplyResultSet> findOutpReturnChargeItem (Map <String, Object> map);

    /**
     * 住院摆药记账
     * 
     * @param detailList
     * @return
     */
    public List <InpPhamDispenseDetailVO> phamApplyCharge (List <InpPhamDispenseDetailVO> detailList);

    /**
     * 获取患者可用预缴金
     * 
     * @param paiVisitIdList
     * @return
     */
    public List <InpPhamApplyPatInfo> obtainPatAvailablePrepayment (List <InpPhamApplyPatInfo> patInfoList);

    /**
     * 住院退药 退费服务
     * 
     * @param inpPham 退药申请单明细记录
     * @return
     */
    public Boolean inpPhamRefund (List <InpPhamDispenseDetailVO> detailList);

    /**
     * 门诊退药 申请
     * @param pdsSupplyDetailVOs
     * @return
     */
    public Boolean OutDrugReturnApply(List <PdsSupplyDetailVO> pdsSupplyDetailVOs);
    /** 公司版权信息. */
    public static final String copyright = "Copyright 2014, XuNuo Corporation";

    /** 提交路径. */
    public static final String SCC_BRANCH = "$URL$";

    /** 提交日期. */
    public static final String SCC_LAST_MODIFICATION_DATE = "$Date$";

    /** 最终修改人员. */
    public static final String SCC_LAST_MODIFIER_NAME = "$Author$";

    /** 最终版本号. */
    public static final String SCC_REVISION = "$Revision$";
}
